import router from './router'
import { useUserStore } from './stores/user'
import { message } from 'ant-design-vue'

// 不需要登录即可访问的白名单路径
const whiteList = ['/login', '/register', '/404', '/403', '/']

router.beforeEach(async (to, from, next) => {
  // 获取用户状态
  const userStore = useUserStore()
  
  // 判断用户是否已登录
  if (userStore.isLoggedIn) {
    // 已登录状态下访问登录页，重定向到首页
    if (to.path === '/login') {
      next({ path: '/' })
    } else if (to.meta.requireAdmin && !userStore.isAdmin()) {
      // 如果需要管理员权限但用户不是管理员，则跳转到403页面
      message.error('您没有权限访问该页面')
      next({ path: '/403' })
    } else {
      // 正常访问
      next()
    }
  } else {
    // 未登录
    if (whiteList.includes(to.path)) {
      // 在免登录白名单中，直接进入
      next()
    } else {
      // 否则重定向到登录页面
      next({
        path: '/login',
        query: { redirect: to.fullPath } // 将原访问路径保存在query中，登录成功后跳转回去
      })
    }
  }
})

router.afterEach(() => {
  // 路由切换后的操作，如关闭进度条等
}) 